1. Field of Invention
The field of invention relates generally to computer systems and, more specifically but not exclusively, relates to optimized ordering of firmware modules.
2. Background Information
In a typical computer architecture, the initialization and configuration of the computer system by the Basic Input/Output System (BIOS) is commonly referred to as the pre-boot phase. The pre-boot phase is generally defined as the firmware that runs between the processor reset and the first instruction of the Operating System (OS) loader. At the start of pre-boot, it is up to the code in the firmware to initialize the system to the point that an operating system can take over. The start of the OS load begins the period commonly referred to as OS runtime. During OS runtime, the firmware acts as an interface between software and hardware components of a computer system. As computer systems have become more sophisticated, the operational environment between the OS level and the hardware level is generally referred to as the firmware or the firmware environment.
Today, a computer system's BIOS is stored in a non-volatile storage device, such as a Read-Only Memory (ROM) chip. When the computer system boots, the code stored on the chip is loaded and executed as a single monolithic block. The next generation of computer system firmware utilizes firmware modules stored on the computer system. A firmware module includes a block of firmware code to support one or more hardware components of the computer system. Firmware utilizing firmware modules provides greater flexibility and versatility to system developers and coders.
However, employing firmware modules creates greater complexity in execution that increases the boot time of a computer system. For example, if a firmware module depends on the services of another firmware module, boot time is wasted as the computer system attempts to coordinate the execution of the code.